package com.hare.system_server.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hare.system_api.dto.SysMenuDTO;
import com.hare.system_api.po.SysCategoryMenu;
import com.hare.system_api.vo.SysMenuVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @program: Hare
 * @description: 后台管理=>菜单信息 mapper
 * @author: Hare
 * @create: 2022-11-03 15:59
 * @Version 6.0.1
 **/
@Mapper
public interface SysMenuMapper extends BaseMapper<SysCategoryMenu> {


    /**
     * 根据userID查询菜单
     *
     * @param uid 用户ID
     * @return 菜单列表
     */
    List<SysMenuVO> selectMenuTreeByUserId(@Param("userId") String uid);


    /**
     * 查询全部菜单(目录,菜单)
     *
     * @return 菜单数据
     */
    List<SysMenuVO> selectMenuTreeAll();


    /**
     * 根据用户id 查询权限
     *
     * @param userId 用户id
     * @return
     */
    List<String> selectPreGetByUserId(String userId);


    /**
     * 查询全部菜单列表(目录,菜单,按钮)
     *
     * @param sysMenuDTO 菜单信息
     * @return 菜单数据
     */
    List<SysMenuVO> selectMenuTreeList(SysMenuDTO sysMenuDTO);


    /**
     * 根据用户查询全部菜单列表(目录,菜单,按钮)
     *
     * @param sysMenuDTO 菜单信息
     * @return 菜单数据
     */
    List<SysMenuVO> menuTreeByUserIdList(SysMenuDTO sysMenuDTO);


    /**
     * 根据角色id查询关联菜单
     *
     * @param roleId 角色id
     * @return 菜单数据
     */
    List<String> getMenuListByRoleId(String roleId);


}
